Skip to content

[core][python] Preserve historical field options during time travel - #9697

Merged
JingsongLi merged 1 commit into
apache:masterfrom
zhoulii:fix/time-travel-schema-field-options
Sep 11, 2026
Merged

[core][python] Preserve historical field options during time travel#9697
JingsongLi merged 1 commit into
apache:masterfrom
zhoulii:fix/time-travel-schema-field-options

Conversation

@zhoulii

@zhoulii zhoulii commented Sep 9, 2026

Copy link
Copy Markdown
Member

Purpose

close #9696

Tests

@JingsongLi JingsongLi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixes a real historical-read failure: the selected snapshot's fields must be paired with its VECTOR/BLOB declarations. I checked Java and Python copy/time-travel paths, cumulative explicit overrides/removals, and the descriptor aliases. Restoring only the declaration options while keeping runtime/scan options is appropriately scoped; Python's intentional legacy-alias behavior is preserved.

No blocking issue found. All 9 Java TimeTravelSchemaEvolutionTest cases pass with head classes on JDK 8, and all 9 Python time-travel schema-evolution cases pass. The tests cover retained snapshots/tags and readable historical payloads, not just option-map equality.

@JingsongLi
JingsongLi merged commit 04a3433 into apache:master Sep 11, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Time travel uses current VECTOR/BLOB field options after schema evolution

2 participants